/*
  输入一个正整数N(0<=N<50000), 
  输出二行, 格式如下:
    第一行: 从数位由低到高输出对应位数上的值, 每个值之间加一个空格
    第二行: 从数位由高到低输出对应位数上的值, 每个值之间加一个空格
  举例:
    输入:
        25481
    输出:
        1 8 4 5 2
        2 5 4 8 1
*/

#include <iostream>

using namespace std;

int main() {

    int n;
    int num = 1;
    int val;
    int val2;
    int y = 0;
    int d;
    int c;
    int a1[5] = {};
    int a ;

    cin >> n;

    a = n;
    d = n;

    while (n > 0) {
        val = n % 10;
        n = n / 10;
        cout << val << " ";
    }
    cout << endl;

    while (d > 0) {
        d = d /10;
        y = y + 1;
    }
    cout << y << endl;



    for (int i = 0; i < y; i++){
        c = a % 10;
        a = a / 10;
        a1[i]= c;
    }
     
    for (int j = y - 1; j >= 0; j--) {
        cout << a1[j] <<" "; 
    }

    return 0;
}